const { execSync } = require('child_process');
const path = require('path');

console.log('🧪 测试技能数据转换工具...\n');

try {
    // 切换到项目根目录
    const projectRoot = path.resolve(__dirname, '..');
    process.chdir(projectRoot);
    
    console.log('📁 当前工作目录:', process.cwd());
    
    // 创建简单的测试脚本
    const testScript = `
import JsonToXlsx from './src/core/tool/jsonToXlsx';

// 测试数据
const testSkills = [
    {
        id: 'TEST001',
        quality: 'F',
        name: '测试技能1',
        desc: '这是一个测试技能',
        classType: '攻击型',
        data: [{
            attKey: '物理攻击',
            attRange: 0.2,
            levelUpBoost: {
                attRange: 0.1
            }
        }],
        effect: ['伤害类_普通攻击'],
        cooldown: 0,
        type: '主动技能',
        targetType: ['敌方'],
        maxLevel: 20
    },
    {
        id: 'TEST002',
        quality: 'E',
        name: '测试技能2',
        desc: '另一个测试技能',
        classType: '防御型',
        data: [{
            attKey: '魔法防御',
            attRange: 0.15
        }],
        effect: ['防御类_魔法防御'],
        cooldown: 2,
        type: '主动技能',
        targetType: ['友方'],
        maxLevel: 15
    }
];

async function test() {
    try {
        console.log('🎯 测试转换功能...');
        console.log('📊 测试数据:', testSkills.length, '个技能');
        
        // 测试转换
        const outputPath = await JsonToXlsx.convertSkillsToXlsx(testSkills, '测试技能');
        
        console.log('✅ 测试成功！输出文件:', outputPath);
        
        // 测试从JSON文件转换
        const fs = require('fs');
        const testJsonPath = './test-skills.json';
        fs.writeFileSync(testJsonPath, JSON.stringify(testSkills, null, 2));
        
        console.log('📝 创建测试JSON文件:', testJsonPath);
        await JsonToXlsx.convertFromJsonFile(testJsonPath, '测试技能_JSON');
        
        // 清理测试文件
        fs.unlinkSync(testJsonPath);
        
        console.log('🧹 清理测试文件完成');
        
    } catch (error) {
        console.error('❌ 测试失败:', error);
        process.exit(1);
    }
}

test();
`;
    
    // 写入测试脚本
    const fs = require('fs');
    const testScriptPath = path.join(projectRoot, 'test-skill-converter.ts');
    fs.writeFileSync(testScriptPath, testScript);
    
    console.log('📝 创建测试脚本...');
    
    // 运行测试
    console.log('🔄 执行测试...\n');
    execSync(`npx ts-node ${testScriptPath}`, { stdio: 'inherit' });
    
    // 清理测试文件
    fs.unlinkSync(testScriptPath);
    
    console.log('\n🎉 测试完成！请检查 xlsx/游戏配置 目录下的文件。');
    
} catch (error) {
    console.error('❌ 测试执行失败:', error);
    process.exit(1);
} 